<?php

declare(strict_types=1);
namespace app\api\business;


use app\common\lib\ClassArr;
use app\common\lib\Num;
use app\common\lib\sms\AliSms;

class Sms
{
    public static function sendCode(string $phoneNumber, int $len, string $type = 'ali') :bool{

//        我们需要生成我们的验证码 4位
        $code = Num::getCode($len);
//        $sms = AliSms::sendCode($phoneNumber,$code);

        // 工厂模式
//        $type = ucfirst($type);
//        $class= "app\common\lib\sms\\".$type."Sms";
//        $sms = $class::sendCode($phoneNumber,$code);
        $classStatus = ClassArr::smsClassStat();
        $classObj = ClassArr::initClass($type,$classStatus);
        $sms = $classObj::sendCode($phoneNumber,$code);
        if ($sms){
            // 需要把我们得到短信验证码记录到Redis 并且需要给出一个失效时间 1分钟
            // 1. 我们的PHP环境是否有Redis扩展
            // 2. redis服务
            cache(config('redis.code_pre').$phoneNumber,$code,config('redis.code_expire'));
        }
        return true;
    }
}